#!/usr/bin/env.python
# _*_ coding:utf-8 _*_
# # # # # # # # # # # # # # # # # # # #
#  题目:      oauth的工具              #
#  姓名:         李吉辉                #
#  时间:    2018年12月22日21:27:31     #
# # # # # # # # # # # # # # # # # # # #

from itsdangerous import TimedJSONWebSignatureSerializer as TJSSerializer, BadData
from django.conf import settings


def generate_save_user_token(openid):
    """对openid进行加密处理"""

    # 1.创建加密的序列化器        设置中的SECRET_KEY  过期时间(单位秒)
    serializer = TJSSerializer(settings.SECRET_KEY, 600)

    # 2.包装要加密的数据
    data = {
        'openid': openid
    }

    # 3.dumps进行加密(返回默认是bytes类型)并解码
    # dumps 是把字典转化为 bytes类型的字符串
    access_token_bytes = serializer.dumps(data).decode()

    # 4.返回
    return access_token_bytes


def check_save_user_token(access_token):
    """对openid进行解密处理"""
    # 1.创建解密序列化器         设置中的SECRET_KEY  过期时间(单位秒)
    serializer = TJSSerializer(settings.SECRET_KEY, 600)  # 注意SECRET_KEY 和 过期时间(单位秒)都要和加密的一样

    # 2.反序列化解密
    try:
        #  loads进行解密
        data = serializer.loads(access_token)
        print(data)
    except BadData:
        # 如果openID过期,返回None
        return None
    else:
        return data.get('openid')